package tools

import "context"

const _KEY_TRACE_ID string = "trace_id"

func NewContext() context.Context {
	ctx := context.Background()
	newCtx := context.WithValue(ctx, _KEY_TRACE_ID, GenShortID())
	return newCtx
}

func NewTraceContext(ctx context.Context) context.Context {
	_, ok := ctx.Value(_KEY_TRACE_ID).(string)
	if ok {
		return ctx
	}

	newCtx := context.WithValue(ctx, _KEY_TRACE_ID, GenShortID())
	return newCtx
}
